/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.orientesalud.dao.impl;

import cl.orientesalud.dao.Dao;
import cl.orientesalud.dao.EstadoPagoDao;
import cl.orientesalud.dominio.EstadoPago;
import cl.orientesalud.dominio.TipoPago;
import cl.orientesalud.util.OrienteLog;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;

/**
 *
 * @author nicolas
 */
public class EstadoPagoDaoImpl extends Dao implements EstadoPagoDao{
    Logger logger=OrienteLog.obtenerLogger(EstadoPagoDaoImpl.class);

    @Override
    public List<EstadoPago> obtenerEstadosPago() throws Exception {
        List<EstadoPago> estados=null;
        PreparedStatement pstmt=null;
        EstadoPago estado;
       ResultSet rs=null;
       String consulta="SELECT est_id,"
               + "      est_descripcion "
               + "from pago_estado ";
        try {
            logger.debug("Consulta:"+consulta);
            pstmt = conexion.preparedStatement(consulta);
            rs=pstmt.executeQuery();
            estados=new ArrayList();
            while(rs.next()){
                estado=new EstadoPago();
                estado.setId(rs.getInt("est_id"));
                estado.setDescripcion(rs.getString("est_descripcion"));
                
                estados.add(estado);
            }
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
            throw new Exception("Error en el sistema");
        }
       
        return estados;
    }

    @Override
    public EstadoPago obtenerEstadoPago(EstadoPago estadoPago) throws Exception {
        logger.debug("obteniendo estado de pago:"+estadoPago);
       EstadoPago retorno=null;
       PreparedStatement pstmt=null;
       ResultSet rs=null;
       String consulta="SELECT est_id,"
               + "      est_descripcion "
               + "from pago_estado "
               + "where est_id=?";
       logger.debug("consulta:"+consulta);
        try {
            pstmt = conexion.preparedStatement(consulta);
            pstmt.setInt(1, estadoPago.getId());
            rs=pstmt.executeQuery();
            if(rs.next()){
                retorno=new EstadoPago();
                retorno.setId(rs.getInt("est_id"));
                retorno.setDescripcion(rs.getString("est_descripcion"));
                
                
            }
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
            throw new Exception("Error en el sistema");
        }
       return retorno;
    }
}
